package com.xhu.handler;

import com.xhu.common.request.PredictRequest;
import com.xhu.exceptions.SalePredictionException;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import java.io.File;

/**
 * 用与生成销售预测结果，算法虽然写不来，但要做个样子
 */
@Component
public class SalePredictionResultHandler {
    private static final String FAKERESULTS = "目前公司共有用户549人，同比增长+5.23%，环比增长+3.97%；市场发展部员工56人，" +
            "同比增长+6.87%，环比增长+2.71%；目前行业正处于销售旺季，预计目标时间内销售额在120-150万之间";


    /**
     * 预测方法
     *
     * @param entity pojo实体
     * @param file   xlsx文件
     * @return 预测结果
     */
    public String predict(PredictRequest entity, File file) {
        validate(entity, file);
        return FAKERESULTS;
    }

    private void validate(PredictRequest entity, File file) {
        boolean flag = !StringUtils.hasText(entity.getDepartment());
        if (!StringUtils.hasText(entity.getOperator())) {
            flag = true;
        }
        if (!StringUtils.hasText(entity.getTime())) {
            flag = true;
        }
        if (!StringUtils.hasText(String.valueOf(entity.getCustomCount()))) {
            flag = true;
        }
        if (!StringUtils.hasText(String.valueOf(entity.getDepartmentSize()))) {
            flag = true;
        }

        if (flag) {
            throw new SalePredictionException("有关字段为空");
        }
        String fileName = file.getName();
        if (!fileName.substring(fileName.lastIndexOf(".")).equals(".xlsx")) {
            throw new SalePredictionException("文件类型不支持");
        }
    }

}
